package ec.edu.ups.cidi.siia.plamdep.webcrawler.extractorlinks;
import java.util.ArrayList;
import java.util.List;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import ec.edu.ups.cidi.siia.plamdep.configuracion.ConfiguracionConexionWeb;
import ec.edu.ups.cidi.siia.plamdep.modelo.webcrawler.Bibliografia;
import ec.edu.ups.cidi.siia.plamdep.utils.Log;
import ec.edu.ups.cidi.siia.plamdep.webcrawler.descarga.HtmlUtils;
public class LinksGoogle implements IExtractorLinks
{
   private List<Bibliografia> resultados=new ArrayList<Bibliografia>(); //el listado de links encontrados
   public void extraerLinks(String html)
    {
	   Document doc = Jsoup.parse(html);
   	   Elements lis=doc.getElementsByAttributeValue("class", "g");
   	   for(Element li:lis)
	   try{	
	   		String href=li.getElementsByAttributeValue("class", "r").html();
	   		href=HtmlUtils.contentBetween(href,"<a href=\"", "\" onmo");
	   		
	   		System.out.println("href:"+href);
	   		href=java.net.URLDecoder.decode(href,"UTF-8");
	   		String resumen=li.getElementsByAttributeValue("class", "st").text().replaceAll("\n", "");
	   		if(href.length()>0)
	           {       	
	       				//Utils.log(null, Utils.MOD_WEBCRAWLER, Utils.LEVEL_MSG, LinksOnlineBrowser.class, "URL:"+href);
	       				//Utils.log(null, Utils.MOD_WEBCRAWLER, Utils.LEVEL_MSG, LinksOnlineBrowser.class, "Resumen:"+resumen+"\n");
	                   	this.resultados.add(new Bibliografia(href,resumen));
	                   	if(resultados.size()>=ConfiguracionConexionWeb.limite_results)//limita el numero de resultados
	                       	return;
	           }
	   	}catch (Exception e) {
				// TODO: handle exception
			}
    }
    
    public List<Bibliografia> getLinks() 
    {
        return this.resultados;
    }
    
    public void setContenidoHTML(String contenidoHTML) {
        this.extraerLinks(contenidoHTML);
    }
    
    
}